﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DormMS.Model.Enum;

namespace DormMS.Model
{
    /// <summary>
    /// 订单类
    /// </summary>
    public class Order
    {
        /// <summary>
        /// 
        /// </summary>
        public int Id { get; set; }
        private DateTime addTime = DateTime.Now;
        /// <summary>
        /// 添加时间
        /// </summary>
        public DateTime AddTime { get { return addTime; } set { addTime = value; } }
        private bool isDeleted = false;
        /// <summary>
        /// 是否删除
        /// </summary>
        public bool IsDeleted { get { return isDeleted; } set { isDeleted = value; } }
        /// <summary>
        /// 会员ID
        /// </summary>
        public int MemberId { get; set; }
        /// <summary>
        /// 会员等级
        /// </summary>
        public int? MemberLevel { get; set; }
        /// <summary>
        /// 会员折扣
        /// </summary>
        public int? MemberDiscount { get; set; }
        /// <summary>
        /// 会员名称
        /// </summary>
        public string MemberName { get; set; }
        /// <summary>
        /// 订单号
        /// </summary>
        public string OrderNo { get; set; }
        /// <summary>
        /// 订单类型
        /// </summary>
        public OrderType OrderType { get; set; }
        /// <summary>
        /// 订单状态
        /// </summary>
        public OrderStatus OrderState { get; set; }
        /// <summary>
        /// 发货状态
        /// </summary>
        public OrderSendStatus SendStatus { get; set; }
        /// <summary>
        /// 订单价格
        /// </summary>
        public decimal OrderPrice { get; set; }
        /// <summary>
        /// 商品价格
        /// </summary>
        public decimal ProductPrice { get; set; }

        /// <summary>
        /// 调整价格
        /// </summary>
        public decimal Discount { get; set; }
        /// <summary>
        /// 支付状态
        /// </summary>
        public OrderPayStatus PayState { get; set; }
        /// <summary>
        /// 支付金额
        /// </summary>
        public decimal PayMoney { get; set; }
        /// <summary>
        /// 支付时间
        /// </summary>
        public DateTime? PayTime { get; set; }
        /// <summary>
        /// 支付方式
        /// </summary>
        public PayType PayType { get; set; }
        /// <summary>
        /// 收货人姓名
        /// </summary>
        public string ReceiveName { get; set; }
        /// <summary>
        /// 收货人手机
        /// </summary>
        public string ReceivePhone { get; set; }
        /// <summary>
        /// 收货人省份
        /// </summary>
        public int ReceiveProvince { get; set; }
        /// <summary>
        /// 收货人城市
        /// </summary>
        public int ReceiveCity { get; set; }
        /// <summary>
        /// 收货人地区
        /// </summary>
        public int ReceiveArea { get; set; }
        /// <summary>
        /// 收货人地址
        /// </summary>
        public string ReceiveAddress { get; set; }
        /// <summary>
        /// 邮编
        /// </summary>
        public string Zipcode { get; set; }
        /// <summary>
        /// 是否快递
        /// </summary>
        public bool IsExpress { get; set; }
        /// <summary>
        /// 快递费
        /// </summary>
        public decimal PostageMoney { get; set; }
        /// <summary>
        /// 快递公司代码
        /// </summary>
        public string ExpressId { get; set; }
        /// <summary>
        /// 快递模板名称
        /// </summary>
        public string TemplateName { get; set; }
        /// <summary>
        /// 最近发货时间
        /// </summary>
        public DateTime? SendTime { get; set; }
        /// <summary>
        /// 确认收货时间
        /// </summary>
        public DateTime? ReceiveTime { get; set; }
        /// <summary>
        /// 取消时间
        /// </summary>
        public DateTime? CancleTime { get; set; }
        /// <summary>
        /// 取消原因
        /// </summary>
        public string CancleReason { get; set; }
        /// <summary>
        /// 订单积分
        /// </summary>
        public int OrderPoint { get; set; }
        /// <summary>
        /// 使用积分
        /// </summary>
        public int UsePoints { get; set; }
        /// <summary>
        /// 积分支付金额
        /// </summary>
        public decimal PointsPayMoney { get; set; }
        /// <summary>
        /// 税费
        /// </summary>
        public decimal OrderTax { get; set; }
        /// <summary>
        /// 用户余额
        /// </summary>
        public decimal MemberMoney { get; set; }
        /// <summary>
        /// 满减金额
        /// </summary>
        public decimal FullReduceMoney { get; set; }
        /// <summary>
        /// 优惠券金额
        /// </summary>
        public decimal ActivityCouponMoney { get; set; }
        /// <summary>
        /// 优惠券ID
        /// </summary>
        public int? CouponId { get; set; }
        /// <summary>
        /// 订单备注
        /// </summary>
        public string Remark { get; set; }
        /// <summary>
        /// 系统备注
        /// </summary>
        public string SystemRemark { get; set; }
        /// <summary>
        /// 活动ID
        /// </summary>
        public int? AactivityId { get; set; }
        /// <summary>
        /// 发票抬头
        /// </summary>
        public string InvoiceTitle { get; set; }
        /// <summary>
        /// 团Id
        /// </summary>
        public int? GroupId { get; set; }
    }
}
